import js from '@eslint/js'
import pluginVue from 'eslint-plugin-vue'

export default [
  {
    name: 'app/files-to-lint',
    files: ['**/*.{js,mjs,jsx,vue}'],
  },

  {
    name: 'app/files-to-ignore',
    ignores: ['**/dist/**', '**/dist-ssr/**', '**/coverage/**'],
  },

  // 使用推荐配置
  js.configs.recommended,
  ...pluginVue.configs['flat/essential'],

  // 自定义规则配置
  {
    rules: {
      'prettier/prettier': [
        'warn',
        {
          singleQuote: true, // 单引号
          semi: false, // 无分号
          printWidth: 85, // 每行宽度至多85字符
          trailingComma: 'none', // 不加对象|数组最后逗号
          endOfLine: 'auto' // 换行符号不限制
        }
      ],
      'vue/multi-word-component-names': [
        'warn',
        {
          ignores: ['index'] // 忽略单个单词的组件名
        }
      ],
      'vue/no-setup-props-destructure': ['off'], // 禁用 props 解构
      'no-undef': 'error' // 报错未定义变量
    }
  },

  // 配置全局变量名
  {
    globals: {
      ElMessage: 'readonly',
      ElMessageBox: 'readonly',
      ElLoading: 'readonly'
    }
  }
]
